

#pragma once

#include "MediaStreamSinkDialogData.h"
#include "Dialogs.h"

class CVideoCaptureDialogData
{
public:
	CVideoCaptureDialogData( DSNS::Grabber& grabber );
	CVideoCaptureDialogData( DSNS::Grabber& grabber, smart_ptr<tMediaStreamSinkDialogSettings> pInitialSettings );
	~CVideoCaptureDialogData();

    bool	isRecording();
	void	pause();
	bool	isPaused();
	void	start();
	void	stop();

	std::wstring	getContainer();
	std::wstring	getCodec();
	std::wstring	getFilename();

	std::wstring getRecordedTimeString();

	smart_ptr<DSNS::MediaStreamSink>	getSink();
	void	setSink( smart_ptr<DSNS::MediaStreamSink> pSink );

	smart_ptr<tMediaStreamSinkDialogSettings>		getDialogSettings();

private:
	void operator=( CVideoCaptureDialogData& );     // shut up VC2010 compiler

    DSNS::Grabber&					    m_Grabber;

    CMediaStreamSinkDialogData			m_sinkData;

	smart_ptr<DSNS::GrabberSinkType>	m_pOldSink;
	bool								m_bOldLive;

	bool								m_bPaused;
	bool								m_bRecording;

	REFERENCE_TIME						m_recordedTime;
	REFERENCE_TIME						m_startTime;
};
